package cn.szzsi._admin;

import cn.szzsi.common.kit.CommonUtil;
import cn.szzsi.common.model.ProductAttribute;
import cn.szzsi.common.model.ProductType;
import com.jfinal.kit.Ret;
import com.jfinal.kit.StrKit;

import java.util.List;

/**
 * 后台类 - 商品类型
 * 
 */
public class ProductTypeController extends BaseAdminController<ProductType> {
	
	private ProductType productType;
	private String shopId;
	
	// 添加
	public void add() {
		render("product_type_input.html");
	}

	// 编辑
	public void edit() {
		String id = getPara("id","");
		if (StrKit.notBlank(id)){
			setAttr("productType", ProductType.dao.findById(id));
		}
		render("product_type_input.html");
	}

	// 列表
	public void list() {
		findByPage();
		render("product_type_list.html");
	}

	/**
	 * 异步列表
	 */
	public void ajaxlist(){
		shopId=getAttr("shopId");
		List<ProductType> lpt = ProductType.dao.getAllByShopId(shopId);
		renderJson(lpt);
	}

	// 添加

	public void save(){
		shopId=getAttr("shopId");
		productType = getModel(ProductType.class);
		productType.set("uid",shopId);
		if(ProductType.dao.getByNameAndShopId(productType.getName(),shopId,"")!=null){
			renderJson(Ret.fail("info","添加失败,属性名称已存在!").set("url","list"));
			return;
		}
		saved(productType);
		renderJson(Ret.ok("info","添加成功!").set("url","list"));
		//redirect("/shop/productType/list");
	}
	
	// 编辑

	public void update(){
		shopId=getAttr("shopId");
		productType = getModel(ProductType.class);
		if(ProductType.dao.getByNameAndShopId(productType.getName(),shopId,productType.getId())!=null){
			renderJson(Ret.fail("info","更新失败,属性名称已存在!").set("url","list"));
			return;
		}
		updated(productType);
		renderJson(Ret.ok("info","修改成功!").set("url","list"));
		//redirect("/shop/productType/list");
	}
	
	// 删除
	public void delete() {
		String[] ids = getParaValues("ids");
		if (ids != null && ids.length > 0) {
			for (String id : ids) {
				// 是否存在商品属性
				List<ProductAttribute> productAttribute = ProductType.dao.findById(id).getProductAttributeList();
				if (productAttribute != null && productAttribute.size() > 0) {
					//ajaxJsonErrorMessage("此商品类型下存在商品属性，删除失败！");
					renderJson(Ret.fail("info","此商品类型下存在商品属性，删除失败！"));
					return;
				}	
				if(ProductType.dao.deleteById(id)){
					renderJson(Ret.ok("info","删除成功！"));
					ajaxJsonSuccessMessage("删除成功！");
				}else{
					renderJson(Ret.fail("info","删除失败！"));

				}
			} 
		} else {
			renderJson(Ret.fail("info","id为空未选中，删除失败！"));
			//ajaxJsonErrorMessage("id为空未选中，删除失败！");
		}
		
	}
	
}
